#include <iostream>

// 如何区分非静态成员函数和静态成员函数
// this指针指向被调用的成员函数所属的对象
// this指针隐含在每个非静态成员函数中
// 用途：1.区分同名成员变量 2.返回对象本身return *this
class Person
{
public:
    Person(int age)
    {
        this->age = age;
    }

    Person &PersonAddAge(Person &p)
    {
        this->age += p.age;
        return *this;
    }
    int age;
};

void test01()
{
    Person p(18);
    std::cout << "age = " << p.age << std::endl;
}

void test02()
{
    Person p1(18);
    Person p2(20);
    p2.PersonAddAge(p1).PersonAddAge(p1);   // 链式编程思想
    std::cout << "p2.age = " << p2.age << std::endl;
}



int main()
{
    //test01();
    test02();
    return 0;
}